package simuAnnealing;

import gui.GraphPlotMode;

public class SAconfigurations {

	private double alfa = 0.05;
	private double beta = 0.01;
	private TempReductionMethod howToReduceTemperature = TempReductionMethod.REDUCE_BY_FACTOR;
	private IterationsMethod howToChooseIterationsPerTemperature = IterationsMethod.BY_A_CONSTANT_NUMBER;
	private int numberOfGoodSolutions = 100;
	private int numberOfChosenSolutions = 100;
	private int numberOfIterationsPerTemperature = 1000;
	private GraphPlotMode graphMethod = GraphPlotMode.BY_FINAL_SOLUTIONS; 

	public SAconfigurations() {

	}

	public SAconfigurations(double alfa, double beta,
			TempReductionMethod reducingMethod,
			IterationsMethod itarationsMethod) {
		this.alfa = alfa;
		this.beta = beta;
		this.howToReduceTemperature = reducingMethod;
		this.howToChooseIterationsPerTemperature = itarationsMethod;
	}

	public double getAlfa() {
		return alfa;
	}

	public void setAlfa(double alfa) {
		this.alfa = alfa;
	}

	public double getBeta() {
		return beta;
	}

	public void setBeta(double beta) {
		this.beta = beta;
	}

	public TempReductionMethod getHowToReduceTemperature() {
		return howToReduceTemperature;
	}

	public void setHowToReduceTemperature(
			TempReductionMethod howToReduceTemperature) {
		this.howToReduceTemperature = howToReduceTemperature;
	}

	public int getNumberOfGoodSolutions() {
		return numberOfGoodSolutions;
	}

	public void setNumberOfGoodSolutions(int numberOfGoodSolutions) {
		this.numberOfGoodSolutions = numberOfGoodSolutions;
	}

	public int getNumberOfChosenSolutions() {
		return numberOfChosenSolutions;
	}

	public void setNumberOfChosenSolutions(int numberOfChosenSolutions) {
		this.numberOfChosenSolutions = numberOfChosenSolutions;
	}

	public int getNumberOfIterationsPerTemperature() {
		return numberOfIterationsPerTemperature;
	}

	public void setNumberOfIterationsPerTemperature(
			int numberOfIterationsPerTemperature) {
		this.numberOfIterationsPerTemperature = numberOfIterationsPerTemperature;
	}

	public IterationsMethod getIterationsChoosingType() {
		return howToChooseIterationsPerTemperature;
	}

	public void setIterationsChoosingType(
			IterationsMethod howToChooseIterationsPerTemperature) {
		this.howToChooseIterationsPerTemperature = howToChooseIterationsPerTemperature;
	}

	public GraphPlotMode getGraphMethod() {
		return graphMethod;
	}

	public void setGraphMethod(GraphPlotMode graphMethod) {
		this.graphMethod = graphMethod;
	}

}
